/**
 *  重点
 * 1. 理解RPC的概念  （一般用于NodeJS中间层与服务器通信）
 * 2. 了解protocol-buffers和使用（.proto文件）
 *      1.是一种序列化数据结构的协议
 * 3. 理解buffer 以及Buffer使用
 * 4. 理解单向通信、半双工通信、全双工通信
 */
const fs = require('fs');
const protobuf = require('protocol-buffers');

// 根据协议，编译出一个js逻辑对象，里面包含encode和decode函数
// 实际写web服务器的时候，注意这个操作可以直接在进程启动就做
// 否则在http处理过程里做的话，是一次不必要的性能消耗
const schemas = protobuf(fs.readFileSync(`${__dirname}/test.proto`));

const buffer =
    schemas.Course.encode({
        id: 4,
        name: 'hh',
        lesson: []
    })
console.log(
    buffer
);
console.log(
    schemas.Course.decode(buffer)
);